home *** CD-ROM | disk | FTP | other *** search
/ GFX Sensations 1 / Graphic Sensations - Volume 1.iso / tools / amiga / misc / spirodra.lha / SpiroDraw06.doc < prev    next >
Encoding:
Text File  |  1994-06-16  |  22.7 KB  |  421 lines

  1.  
  2.  |  User Document for SpiroDraw06 for the
  3.  |  Commodore AMIGA "family" of computers.     94-06-16
  4.  
  5.  |  Lines marked with "|" are additions or changes
  6.  |  in this document from the SpiroDraw05 documentation.
  7.  
  8.  |  PLEASE NOTE:  "SpiroDraw06" will be the FINAL version under
  9.  |                this name.  Please look for "EyeCandy01" or
  10.  |                later versions (eg. "EyeCandy02" , etc.)
  11.  |                which will contain SpiroDraw06 functionality
  12.  |                and (as the name hopefully implies) will
  13.  |                also have the capability of generating
  14.  |                various other kinds of designs.  Any future
  15.  |                enhancements to the SpiroDraw functionality
  16.  |                will be found ONLY my new program, "EyeCandy".
  17.  
  18.     I. What is this program and who wrote the thing?
  19.     ------------------------------------------------
  20.  
  21.          SpiroDraw is a program that simulates the spiral drawing
  22.     child's toy.  It is almost as rewarding to watch the design being
  23.     drawn by the computer as I remember it being to actually draw
  24.     the design yourself, using the pins, and wheels and everything.
  25.     It is certainly more accurate since the computer does not have
  26.     to worry about holding all the wheels and guides perfectly still
  27.     while winding the drawing wheel around inside or outside the
  28.     guide wheel.  If you have ever used this toy then I am sure
  29.     you know what I mean!
  30.  
  31.  |  This program is an update from Rev 05.  Slider gadgets in the
  32.  |  "Set Data..." window have been lengthened in the HI-RES screen
  33.  |  to make them easier to "grab" with the mouse.
  34.  
  35.  |  SpiroDraw06 has been compiled with  ACE (c)David Benn
  36.     on an Amiga A2000HD (running OS 2.1).
  37.  
  38.     If you get any enjoyment or productive use from this program,
  39.     drop me a line.  I'd like to hear from you (if you REALLY like
  40.     it, stick a little $ (how about $5.00 US) in the envelope - please!).
  41.     Thanks go to W. Hagan who was the first send some $ my way.
  42.     He has restored my faith in the "shareware" concept!
  43.  
  44.         Charles E. Kenney, II
  45.         4 Burbank Circle
  46.         Framingham, MA 01701
  47.         USA
  48.               phone: (508) 877-5959
  49.                  or: (508) 877-4771
  50.  
  51.     If you send me a disk and a stamped self-addressed disk mailer,
  52.     I will also send you the latest version of "SpiroDraw" and the
  53.     source code along with any other little ditties I come up with.
  54.  
  55.     This program may be freely distributed as long as this document
  56.     accompanies the program AND no more than a _small_ fee is charged
  57.     for copying and or distribution.
  58.  
  59.     Thanks.
  60.        -ck.
  61.  
  62.     P.S. Thanks again to David Benn for his wonderful compiler, "ACE".
  63.  
  64.  
  65.     II. Program Set-up and Menu Descriptions
  66.     ----------------------------------------
  67.  
  68.     "SpiroDraw" starts with 8 default settings (See "Last" gadget below)
  69.     for SpiroDraw designs so you can see immediately what "SpiroDraw"
  70.     can do.  Following are descriptions of the various menus and the
  71.     resultant actions:
  72.  
  73.     The "Project" menu contains the "standard" Load and Save functions:
  74.  
  75.       Load - The user may load data for a previously saved design.
  76.              Data files for SpiroDraw always have a ".spd" extension.
  77.              If the user does not include a ".spd" file extension,
  78.              "SpiroDraw" adds it automatically.
  79.              The current data is "backed-up" before the data is
  80.              loaded (See "Last" gadget above).
  81.              "LIBS:arp.library" must be installed on WB 1.3 systems
  82.              in order for the "Load" MENU item to function.
  83.  
  84.       Save - The user may save data for a design if desired.
  85.              If the user does not include a ".spd" file extension,
  86.              "SpiroDraw" adds it automatically.
  87.              "LIBS:arp.library" must be installed on WB 1.3 systems
  88.              in order for the "Save" MENU item to function.
  89.  
  90.       Draw - Draws the SpiroDraw design for the data and other
  91.              parameters currently in effect for "SpiroDraw".
  92.              The drawing of the design may be interrupted with the
  93.              famous 'CTRL-C' keys or by clicking the Left Mouse Button.
  94.  
  95.       About - A little message about SpiroDraw and its author.
  96.  
  97.       Quit - Well... This is how to exit "SpiroDraw"!
  98.  
  99.  
  100.     The "Design" menu contains all the functions
  101.     the user needs to set the design parameters:
  102.  
  103.       Set Data... - Invokes a screen which allows the user to specify
  104.                     the three "size" parameters for the SpiroDraw
  105.                     design: Guide Ring, Drawing Wheel and Pen-Hole
  106.                     (see "A few words about "SpiroDraw"" below for a
  107.                     description of these).
  108.                     Clicking on the "In/Out" gadget cycles the placement
  109.                     of the Drawing Wheel to inside-only, outside-only or
  110.                     both on the Guide Ring.
  111.                     Clicking on the "Last" gadget "recalls" the last
  112.                     data from the "design buffer".  The design buffer
  113.                     is capable of holding 8 sets of design data -
  114.                     (Guide Ring, Drawing Wheel and Pen-Hole parameters).
  115.                     When the user clicks on this gadget, the previous
  116.                     data in use before the current data is placed into
  117.                     the current data and the other 7 sets of data are
  118.                     "bubbled-up", with the current data being "sent down"
  119.                     to the 8th set of data.  Note that any time the user
  120.                     modifies the current data by loading new data from
  121.                     disk, by exiting the "Set Data..." window after
  122.                     making changes, or by selecting the "Random" gadget,
  123.                     (see below), the current data is "backed-up" to the
  124.                     "1st" buffer, the "1st" to the "2nd", the "2nd" to
  125.                     the "3rd", etc.  The "8th" set of data simply gets
  126.                     "pushed off the cliff" and is lost forever.
  127.                     Clicking on the "Random" gadget randomizes the design
  128.                     sizes for the Guide Ring, Drawing Wheel and Pen-hole.
  129.                     The current data is "backed-up" before the data is
  130.                     randomized (See "Last" gadget description above).
  131.                     Clicking on the "Done" gadget exits this function
  132.                     and the user is asked whether or not to draw the
  133.                     new design using the new design parameters.
  134.       
  135.       Wheel Inside  - If this Menu item does not have the "check-mark"
  136.                       then the "check-mark" is placed in the menu and
  137.                       "SpiroDraw" will place the Drawing Wheel inside
  138.                       the Guide Ring for subsequent SpiroDraw designs.
  139.                       If this Menu item does have the "check-mark"
  140.                       then the "check-mark" is removed from the menu
  141.                       and "SpiroDraw" will not place the Drawing Wheel
  142.                       inside the Guide Ring for subsequent SpiroDraws.
  143.                       "SpiroDraw" will also automatically "check-mark"
  144.                       the "Wheel Outside" menu if the "Wheel Inside"
  145.                       menu is UN-check-marked.
  146.  
  147.       Wheel Outside - If this Menu item does not have the "check-mark"
  148.                       then the "check-mark" is placed in the menu and
  149.                       "SpiroDraw" will place the Drawing Wheel outside
  150.                       the Guide Ring for subsequent SpiroDraws.
  151.                       If this Menu item does have the "check-mark"
  152.                       then the "check-mark" is removed from the menu
  153.                       and "SpiroDraw" will not place the Drawing Wheel
  154.                       outside the Guide Ring for subsequent SpiroDraws.
  155.                       "SpiroDraw" will also automatically "check-mark"
  156.                       the "Wheel Inside" menu if the "Wheel Outside"
  157.                       menu is UN-check-marked.
  158.  
  159.       Detail...  - Invokes a window which allows the user to specify
  160.                    how detailed the drawn design will be.  Clicking
  161.                    on the "Next" gadget cycles through all possible
  162.                    choices (each selection also causes "SpiroDraw" to
  163.                    take progressively longer to draw the design):
  164.  
  165.                    DOTTY   - plots dots at visible intervals rather than
  166.                              drawing a continuous line while the design
  167.                              is being drawn (dots may be connected with
  168.                              a line between each dot - see the description
  169.                              for the "Connect Dots" menu item below).
  170.  
  171.                    SKETCHY - plots dots at smaller intervals than "DOTTY"
  172.  
  173.                    COARSE  - plots dots at _really_ small intervals.
  174.  
  175.                    FINE    - plots dots so close together that they are
  176.                              a continuous line when "SpiroDraw" draws.
  177.  
  178.       Connect Dots - The user may "check-mark" this menu item to connect
  179.                      the dots that are plotted by "SpiroDraw" with a line
  180.                      to give the design a continuous-line appearance.
  181.                      This menu item is automatically disabled if the user
  182.                      selects "FINE" in the "Detail..." menu above since
  183.                      the design will already have a continuous appearance.
  184.  
  185.       Clear Canvas - The user may "check-mark" this menu item to clear
  186.                      the drawing "canvas" before drawing each design.
  187.                      If this menu item is not "check-marked" then many
  188.                      designs can be drawn "on top of" each other.
  189.  
  190.     The "Preferences" menu contains the following functions:
  191.  
  192.       Ask Save - Any time data is changed in "SpiroDraw", the user is
  193.                  asked whether or not to save the "old" data if this
  194.                  menu item is "check-marked".  "UN-check-marking"
  195.                  this menu item stops "SpiroDraw" from asking.
  196.                  It _can_ be annoying.  "SpiroDraw" _always_ asks
  197.                  the user whether to save the new data (if it has
  198.                  been changed) when the "Quit" menu item is selected,
  199.                  regardless of the "check-mark" status of this menu item.
  200.                  "LIBS:arp.library" must be installed on WB 1.3 systems
  201.                  in order for the "Ask Save" MENU item to be enabled
  202.                  (See also "Load" and "Save" above).
  203.  
  204.       Show Activity - When this menu item is "check-marked", a running
  205.                       '% completed' is displayed in the upper left corner
  206.                       of the 'drawing window'.  This is done to show that
  207.                       "SpiroDraw" is "doing something" and to give the user
  208.                       an idea of how long it will take to draw the design.
  209.                       It is difficult to see the design actually being
  210.                       drawn sometimes if the Pen-Hole value is very near
  211.                       zero or if the sizes of the Guide Ring and the Drawing
  212.                       Wheel are nearly equal.  There are instances when the
  213.                       "% completed" message would ruin the appearance of
  214.                       the design so to avoid this, the user may elect to
  215.                       "UN-check-mark" this "Show Activity" menu item.
  216.  
  217.       Visual Round
  218.       Screen Round  - This is a "cycling menu" function.  Each time
  219.                       this menu item is selected the function is
  220.                       "swapped" to the other selection,
  221.                       "Visual Round" to "Screen Round" and vice versa.
  222.  
  223.              If the user selects "Visual Round", the design will be
  224.              drawn with a perfectly circular appearance on the screen.
  225.              If the user selects "Screen Round", the design will be
  226.              drawn with a slightly oval appearance on the screen, but
  227.              this is a useful selection if the design is "saved" as
  228.              an IFF file (using a "screen-capture-to-IFF-file" program
  229.              and then imported into a paint package capable of animation.
  230.              Once this is done, the design can be rotated while still
  231.              maintaining its "roundness".  This has been used successfully
  232.              with DPaint.
  233.  
  234.       Resolution... - Invokes a window which allows the user to specify
  235.                       different screen resolutions.  Clicking on the
  236.                       "Next" gadget cycles through all possible choices:
  237.  
  238.                       If the user selects "LOW" then "SpiroDraw" will
  239.                       change to low resolution (320 x 200 screen).
  240.                       If the user selects "MEDIUM" then "SpiroDraw" will
  241.                       change to medium resolution (640 x 200 screen).
  242.                       If the user selects "HIGH" then "SpiroDraw" will
  243.                       change to high resolution (640 x 400 screen).
  244.  
  245.  
  246.     III.  A few words about "SpiroDraw"
  247.     --------------------------------------
  248.  
  249.          The Guide Ring was, for the child's toy, the plastic ring with
  250.     "gearing" on each side that was so hard to hold perfectly in place
  251.     on the paper while winding the Drawing Wheel around the inside or
  252.     outside of the Guide Ring.  Even pinning the Guide Ring down through
  253.     the paper onto cardboard was never much help either!  "SpiroDraw"
  254.     holds the Guide Ring in place quite nicely though.  "SpiroDraw"
  255.     always places the Guide Ring in the center of the screen.
  256.  
  257.          The Drawing Wheel was, for the child's toy, the plastic "wheel"
  258.     with "gearing" (to mesh with the Guide Ring) that was so hard to keep
  259.     engaged to the gearing of the Guide Ring while winding the Drawing
  260.     Wheel around the inside or outside of the Guide Ring.  If you went
  261.     too slowly you would sometimes get "stuck" due to the "cam" effect
  262.     of the pen-hole in the Drawing Wheel that you had chosen, especially
  263.     if you chose a pen-hole way out near the edge of the Drawing Wheel!
  264.     If you went too fast the the gearing between the Drawing Wheel and
  265.     the Guide Ring would slip or disengage altogether and you would draw
  266.     a nice ugly, frantic and ruinous line across your design!  This was
  267.     REALLY frustrating, especially if you were "almost done"... and only
  268.     6 years old!  "SpiroDraw" will never know gear slips and getting
  269.     stuck by the "cam" effect!
  270.  
  271.  
  272.          The "Pen-Hole" was, for the child's toy, the little hole in the
  273.     Drawing Wheel (there were lots of these little holes in each wheel)
  274.     that you would put your pen into which would determine the "character"
  275.     of the design - the holes closest to the center of the Drawing Wheel
  276.     would produce "circular" designs (for "SpiroDraw", small values for
  277.     the Pen-hole distance from the center of the Drawing Wheel), and the
  278.     holes closest to the edges of the Drawing Wheel would produce very
  279.     "spirally" designs  (for "SpiroDraw", large values for the Pen-hole
  280.     distance from the center of the Drawing Wheel).  Note that "SpiroDraw"
  281.     allows a distance for the Pen-hole which is larger than the radius of
  282.     the Drawing Wheel but only within practical limits depending upon whether
  283.     the 'current' screen resolution is LOW, MEDIUM or HIGH.  You may go ahead
  284.     and TRY putting a pen into a hole on the Drawing Wheel that is larger
  285.     than the Drawing Wheel itself using the child's toy!
  286.  
  287.     IV.  A "useful" way to use this program
  288.          (depending on your definition of "useful")
  289.     -----------------------------------------------
  290.  
  291.          Here is a neat little tidbit for using this program with a
  292.     Paint package (if you would like to play with or animate any of
  293.     your designs that you generate with this program):
  294.  
  295.          For DPaint, anyway, this works nicely...
  296.  
  297.          1.  Start up a "screen-saver" program "in the background"
  298.              which is capable of saving a screen as an IFF file.
  299.              I have used "PictSaver" by Preben Nielsen successfully.
  300.  
  301.          2.  Generate your design using the "screen" roundness
  302.              choice during the "user input" routine.  This choice
  303.              is known to work for DPaint.
  304.  
  305.          3.  Once the design has finished being generated, execute
  306.              whatever key sequence is required by the "screen saver"
  307.              program you have and save the design as an IFF file.
  308.  
  309.          4.  Call up your Paint package and do whatever.  I have
  310.              had fun "rolling" my designs across the screen or
  311.              "into the distance" or even using the design as a
  312.              circular border for other brushes, etc.  Be creative!
  313.  
  314.  
  315.          The following history also appears verbatim as a comment
  316.     at the top of the source program since virtually any significant
  317.     change to the source will result in a significant change to the
  318.     documentation and vice versa.  Also, if you have this user doc
  319.     and not the source, you can see any revision information and
  320.     when it is/was implemented.
  321.  
  322.          Note that as of the first writing of this document
  323.     (for SpiroDraw01), 94-02-17, this little program was
  324.     only 3 days shy of its 10th birthday!
  325.  
  326.     Great advertising hook - "A DECADE IN THE MAKING!"
  327.  
  328.     PROGRAM REVISION HISTORY (in reverse chronological order)
  329.     ----------------------------------------------------------------
  330.     Added the option to Save the screen as an IFF file
  331.         (if this capability is added to ACE)                NOT YET!
  332.  |  Uploaded to AMINET as SpiroDraw06                       94-06-16
  333.  |  Moved the "Set Data..." text gadgets back to the upper
  334.  |      and lower edges of the screen and lengthened the
  335.  |      slider gadgets in the HIRES screen.                 94-06-03
  336.  |  Added SIZE back into DIM variables                      94-06-03
  337.     Uploaded to AMINET as SpiroDraw05                       94-05-31
  338.     Check for WB 2.x or WB 1.3 and if WB 1.3 make sure that
  339.         arp.library exists in the user's LIBS: directory.
  340.         Do not allow "Save","Load" and do not enable the
  341.         "Ask Save" menu if WB 1.3 and no arp.library        94-05-28
  342.     Re-enable "Connect Dots" if switching from "FINE"
  343.         details selection to any other detail selection     94-05-28
  344.     Uploaded to AMINET as SpiroDraw04                       94-05-25
  345.     Fixed HIGH to LOW/MEDIUM Drawing Wheel size scaling bug 94-05-25
  346.     Cleaned up tracking of changed data and backup buffers  94-05-24
  347.     Added "About" MENU item                                 94-05-24
  348.     Squished Gadgets closer together in HIGH Resolution
  349.         "Set Data" window                                   94-05-24
  350.     Increased width of slider gadgets for HIGH resolution   94-05-24
  351.     Moved "Random", "Last" from MENUs to "Set Data" window
  352.         and re-positioned other GADGETS to accommodate them 94-05-23
  353.     Changed window title from
  354.        "Screen Res" to "Screen Resolution"                  94-05-23
  355.     Added " " between SpiroDraw and Data in Set Data window 94-05-23
  356.     Moved "Set Detail" and "Screen Resolution" windows
  357.        down 5 pixels                                        94-05-23 
  358.     Automatically add ".spd" to end of user load data file
  359.        name if not specified by the user.                   94-05-23
  360.     Added Left-Mouse-Button-Click to interrupt design-draw  94-05-23
  361.     Removed the cute spinning anim and replaced with % done 94-05-23
  362.     Fixed a 'bug'.  GADGETS were getting messed up with
  363.                     DIM g_msg$(8) SIZE 4
  364.          changed to DIM g_msg$(8)                           94-05-23
  365.     Uploaded to AMINET as SpiroDraw03                       94-05-20
  366.     Finished debugging user break capability                95-05-18
  367.     Compiled using latest version of ACE which fixed a bug  94-05-15
  368.     Began debugging user-break capability                   94-05-11
  369.     Received first shareware $ from W. Hagan (thanks Bill!) 94-05-12
  370.     Added ^C user-break capability to spiro_draw subroutine 94-05-11
  371.     Added Declarations of variables                         94-04-30
  372.     Uploaded to AMINET as SpiroDraw02                       94-03-13
  373.     Rewrite Documentation for Menus and new features        94-03-13
  374.     All the new stuff                                       94-03-13
  375.     Added more robust file-handling                         94-03-11
  376.     Added more pretty-up code                               94-03-11
  377.     Added switches to ask to save data every time
  378.         data is changed or to not ask and whether to show
  379.         the little activity loop while design is drawn      94-03-11
  380.     Added activity loop while design is being drawn         94-03-11
  381.     Added memory buffer for 8 designs                       94-03-11
  382.     Added some more error handling and pretty-up code       94-03-10        
  383.     Added RANDOMIZATION of design parameters                94-03-09
  384.     Debugged more GADGET code                               94-03-09
  385.     More GADGET coding                                      94-03-09
  386.     Debugged new gadget code                                94-03-08
  387.     Coded "design size" parameters using GADGETs            94-03-08
  388.     Coded "resolution" parameter using GADGETs              94-03-07
  389.     Coded "detail" parameter using GADGETs                  94-03-07
  390.     Ask the user to draw immediately upon reading a .spd    94-03-07
  391.     Added more robust File I/O error handling...
  392.                                  ... could still use more   94-03-07
  393.     Ability to choose (and now change) SCREEN resolution
  394.         "pulled" into the main program                      94-03-06
  395.     MENU and code to Save/Load design parameters            94-03-04
  396.     Added Dummy MENUs for Load and Save                     94-03-04
  397.     Added additional design types skeleton code and menus   94-03-04
  398.     Replaced "hack" user inputs with MENU constructs
  399.         This would enable the user to set up all the
  400.         "design" parameters and change only those
  401.         parameters desired while maintaining all the
  402.         others (user doc changed too)                       94-03-03
  403.     UPLOADED to Aminet as SpiroDraw01                       94-02-25
  404.     Cleaned-up the plot loop, eliminated some "goto"s       94-02-21
  405.     Cleaned up screen and window sizes, user input text     94-02-20
  406.     Fixed new "revolutions" bugs (variable rvlv)
  407.         introduced while cleaning-up the code               94-02-19
  408.     Program now runs from WorkBench                         94-02-17
  409.     The user is now asked for "Pen-hole distance"
  410.         before being asked "inside, outside, or both"
  411.         This order seemed to be more logical after
  412.         writing the documentation                           94-02-17
  413.     Finally wrote the documentation                         94-02-17
  414.     More refinement of programming constructs               94-02-16
  415.     Refinement of programming constructs                    94-02-15
  416.     Revived from my AmigaBasic hacks and converted
  417.     to ACE (great package, David Benn!)                     94-02-14
  418.     Converted from C-64 SIMON'S BASIC to AmigaBasic         87-11-20
  419.     Program initiated and hacked into working order
  420.       using SIMON'S BASIC for the Commodore 64 (tm)         84-02-20
  421.